package com.spsoft.vatoutinv.entity.vmsmanualinvoice;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 手工开票临时表-发票主表
 * </p>
 *
 * @author chenxudong
 * @since 2023-11-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("VMS_MANUAL_BASE")
@KeySequence(value = "SEQ_VMS_MANUAL_BASE")
public class VmsManualBase implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "ID", type = IdType.INPUT)
    private Long id;

    /**
     * 手工开票申请表ID
     */
    private Long applyId;

    /**
     * 发票票种 01：全电专 02：全电普
     */
    private String fppz;

    /**
     * 金额模式;01：不含税 02：含税 默认不含税。可选不含税、含税。若差额征税类型代码不为空时，则仅支持使用不含税模式
     */
    private String jems;

    /**
     * 差额征税类型代码;空：非差额发票 01：全额开票 02：差额开票
     */
    private String cezslxdm;

    /**
     * 单号类型;01：投保单号；02：汇交单号；03学平险受单号
     */
    private String dhlx;

    /**
     * 投保单号/汇交单号/学平险受单号;默认为可选择,可下拉选择，01：投保单号；02：汇交单号；03学平险受单号，选择类型后手工输入对应单号信息，长度不做限制
     */
    private String dh;

    /**
     * 特定要素 默认为空
     * 01：成品油、02：稀土、03：建筑服务、04：货物运输、05：不动产销售、06：不动产租赁、07：代收车船使用税、
     * 08：通行费、09：旅客运输、10：医疗服务、11：农产品、12：拖拉机和联合收割机、13：机动车、14：光伏收购、15：卷烟
     */
    private String tdys;

    /**
     * 购买方名称
     */
    private String gmfmc;

    /**
     * 购买方纳税人识别号;若发票类型为“数电专票”，则为必填；若发票类型为“数电普票”，且其购买方名称含有“公司”、“事务所”等字眼时，
     * 则为必填；反之为非必填；限制录入26位英文大写和阿拉伯数字组合
     */
    private String gmfnsrsbh;

    /**
     * 销售方名称
     */
    private String xsfmc;

    /**
     * 销售方纳税人识别号
     */
    private String xsfnsrsbh;

    /**
     * 合计金额
     */
    private BigDecimal hjje;

    /**
     * 合计税额
     */
    private BigDecimal hjse;

    /**
     * 价税合计
     */
    private BigDecimal jshj;

    /**
     * 备注
     */
    private String bz;

    /**
     * 开票人
     */
    private String kpr;

    /**
     * 交易机构
     */
    private String qydjid;

    /**
     * 创建时间
     */
    private Date creatTime;

    /**
     * 创建人
     */
    private String creatBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 购买方自然人标志
     * 默认为否：01是；02否
     */
    @TableField(exist = false)
    private String gmfzrrbz;

}
